package com.runccyy.dao.mapper;

import com.runccyy.dao.model.RunRecordPO;
import com.runccyy.dao.model.RunRecordStatPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface RunRecordMapper {

    // 根据 userId 和 date 查询运动记录
    RunRecordPO selectRunRecordByUserIdAndDate(@Param("userId") Long userId, @Param("date") Long date);

    int insertRunRecord(RunRecordPO runRecord);

    // 更新运动记录
    int updateRunRecord(RunRecordPO runRecord);

    // 统计 stepCnt >= 5000 的天数，按 userId 分组，在指定时间范围内
    List<RunRecordStatPO> countDaysWithStepCntGreaterThanOrEqualFiveThousand(@Param("startTime") Long startTime,@Param("endTime")  Long endTime);
    // 累计单个账号的 stepCnt 数量，在指定时间范围内

    List<RunRecordStatPO> sumStepCntByUserId(@Param("startTime") Long startTime, @Param("endTime") Long endTime);

    /**
     * 查询总运动天数
     *
     * @param userId
     * @return
     */
    Long queryTotalRunCnt(@Param("userId") Long userId, @Param("startTime")long startTime,@Param("endTime") long endTime);

    /**
     * 查询当天步数
     * @param userId
     * @param dateTime
     * @return
     */
    Long currentStepCnt(@Param("userId") Long userId, @Param("dateTime") Long dateTime);
}
